#include "sm3_utils.h"
#include <gmssl/sm3.h>
#include <QByteArray>

QString sm3_hash(const QString &input) {
    QByteArray inputData = input.toUtf8();
    SM3_CTX ctx;
    uint8_t dgst[SM3_DIGEST_SIZE];

    sm3_init(&ctx);
    sm3_update(&ctx, (const uint8_t *)inputData.constData(), inputData.size());
    sm3_finish(&ctx, dgst);

    QString hash;
    for (int i = 0; i < SM3_DIGEST_SIZE; ++i)
        hash.append(QString::asprintf("%02x", dgst[i]));
    return hash;
}

